#ifndef CHAINSAW_COMMON_CHARTOOL_H
#define CHAINSAW_COMMON_CHARTOOL_H

namespace chainsaw
{
    bool is_upper(unsigned char c);
    bool is_lower(unsigned char c);
    unsigned char to_upper(unsigned char c);
    unsigned char to_lower(unsigned char c);

    bool is_alpha(unsigned char c);
    bool is_digit(unsigned char c);
    bool is_alnum(unsigned char c);

    // is_alpha || is_digit || - || _ || .
    bool is_word_char(unsigned char c);

    bool is_punct(unsigned char c); // '!', ',', '?', '_'

    bool is_space(unsigned char c); // ' ', '\n', '\r', '\t'

    bool is_hexdigit(unsigned char c);

    bool is_print(unsigned char c);
    
} // namespace chainsaw

#endif // !CHAINSAW_COMMON_CHARTOOL_H
